A Complex Event Processing (CEP) engine is a tool that processes events based on an order in which they occurred. CEP tools are commonly used for research and analysis, such as an evaluation of how a change in a particular algorithm will affect an overall system. Existing techniques process the events in a single thread to ensure that the order of events is predictable and consistent. Single thread processing, however, is not scalable and can take several days when processing large amounts of data. Multiple threads running in parallel, however, may cause events to run “out-of-order,” leading to unpredictable system behavior.
A need therefore exists for techniques for processing sequences of events in parallel while ensuring that dependent events are processed based on an order of occurrence.